package com.permission.common;

import java.util.HashMap;
import java.util.Map;

import lombok.Getter;
import lombok.Setter;

/**
 * 自定义响应结构
 * @author jing
 * 使用了@Getter和@Setter之后，定义的字段就不再需要get和set方法了
 */

@Getter
@Setter
public class JsonData {
	private boolean ret; 	//响应结果
	private String msg;		//响应消息
	private Object data;	//响应数据
	
	public JsonData(boolean ret){
		this.ret = ret;
	}
	
	/**
	 * 返回成功
	 * @return
	 */
	public static JsonData success(){
		return new JsonData(true);
	}
	
	/**
	 * 返回数据
	 * @param obj
	 * @return
	 */
	public static JsonData success(Object obj){
		JsonData jsonData = new JsonData(true);
		jsonData.data = obj;
		return jsonData;
	}
	
	/**
	 * 返回数据和消息
	 * @param obj
	 * @param msg
	 * @return
	 */
	public static JsonData success(Object obj,String msg){
		JsonData jsonData = new JsonData(true);
		jsonData.data = obj;
		jsonData.msg = msg;
		return jsonData;
	}
	
	/**
	 * 返回失败消息
	 * @param msg
	 * @return
	 */
	public static JsonData fail(String msg){
		JsonData jsonData = new JsonData(false);
		jsonData.msg = msg;
		return jsonData;
	}
	
	/**
	 * 因为ModeAndView里面有这样一个方法，为了保证我们的异常返回结果和我们正常返回结果一致
	 * 所以把JsonData做成Map格式的
	 * @return
	 */
	public Map<String,Object> toMap(){
		HashMap<String,Object> result = new HashMap<String,Object>();
		result.put("result", ret);
		result.put("msg", msg);
		result.put("data", data);
		return result;
	}
}
